草庐IT

python GUI 与 Swing 相比?

全部标签

java - 使用 invokeLater 或 SwingWorker 从另一个线程更新 Swing 组件

我正在开发一个带有SwingGUI的小型应用程序。应用程序在另一个线程中执行IO任务,当该线程完成时,GUI应相应更新以反射(reflect)线程的操作结果。在(worker,non-GUI)中运行的类在构造函数中传递给它的对象将用于更新GUI,所以我不需要将GUI的东西放在非GUI类中,而是传递用于更新GUI的对象到那个类(class)。据我了解这里阅读的形式,(线程/Swing)更新(更改)SwingGUI的安全选项将使用javax.swing.SwingUtilities.invokeLater(),javax.swing.SwingUtilities.invokeLaterWa

java - 减少 Swing 应用程序耦合的设计模式

大家好,我目前正在开发JavaSwing应用程序,我正在寻找一些指导。该应用程序相当小,但我注意到随着代码库越来越大,我的对象图中有很多耦合。我对Swing比较陌生,但我已经编程很长时间了,知道它的发展方向。我遇到的最大问题是设置我的事件处理。我的子窗口和对象应该如何在不引用它们的情况下将事件传递给我的更高级别的对象?我已经完成了大量的MVC网络编码。这种模式适合Swing吗?我应该建立自己的Controller吗?我想我只是在寻找人们发现对使用Swing有用的模式。预先感谢您的帮助。 最佳答案 我认为,在GUI中减少耦合的最佳方法

java - 如何在 Java Swing 中播放视频?

如何在JavaSwing中播放视频?是否有用于此的任何Swing组件? 最佳答案 看看FMJ-http://fmj-sf.net/ 关于java-如何在JavaSwing中播放视频?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4569490/

java - 在 swing 消息框中启用文本突出显示

假设我正在使用以下代码在我的简单swing应用程序中提示错误消息:JOptionPane.showMessageDialog(null,message,"Error",JOptionPane.ERROR_MESSAGE);有什么方法可以让用户突出显示文本部分(用于复制/粘贴目的)?非常感谢。 最佳答案 试试这个JTextAreatextarea=newJTextArea("addyourmessagehere");textarea.setEditable(true);JOptionPane.showMessageDialog(nul

java - 在Swing中设置JComboBox的背景

这个问题在这里已经有了答案:ChangebackgroundcoloreditableJComboBox(3个答案)关闭6年前。我想要一个没有箭头按钮的JComboBox(已完成),它在启用时具有绿色背景,在禁用时具有灰色背景(未完成)。我还为下拉列表使用自定义渲染器(完成)我检查了BasicComboBoxUI的源代码并尝试重写一些方法,但没有任何反应。下拉列表始终具有灰色/蓝色背景。这是我最后一次尝试的SSCCE。我尝试了我能想到的一切。请给我一个提示,我迷路了。importjava.awt.Color;importjava.awt.Component;importjava.awt

java - 防止 JavaFX 线程死于 JFXPanel Swing 互操作?

我将几个JFXPanels嵌入到Swing应用程序中,当JFXPanels不再可见时,JavaFX线程终止。这是有问题的,因为在JavaFX线程结束后创建另一个JFXPanel将不会启动另一个JavaFX线程,因此JFXPanel将为空白。据我所知,JFXPanelctor通过调用启动JavaFX线程:PlatformImpl.startup(newRunnable(){@Overridepublicvoidrun(){//Noneedtodoanythinghere}});稍后,一旦JFXPanel有一个父组件,它的addNotify方法就会被调用,它会调用registerFinis

java - 如何使用 IntelliJ Swing GUI Designer 添加 JMenuBar、JMenu 和 JMenuItem?

我在IntelliJ的Palette中找不到标题中指定的组件。我注意到表单有一个JMenuBar,但我没有看到它,而且我不知道如何访问它。有什么方法可以直观地使用这些组件吗? 最佳答案 像这样创建菜单目前在IntelliJ设计器中不可用。他们的官方解决方案是使用用于intelliJ的JFormDesigner插件。或者当然是手工编码。这是他们论坛中讨论的链接:-IntelliJthread谢谢,jT 关于java-如何使用IntelliJSwingGUIDesigner添加JMenuBa

java - Swing:将功能键 (F2) 设置为加速器

我有一个菜单项“重命名”,将F2设置为快捷键。事实上,当菜单显示时,“重命名”旁边会有一个小的“F2”指示。遗憾的是,这不起作用。此加速器触发无响应。当我将加速器更改为CTRL+F2-它起作用了。看来我应该使用InpoutMpa/ActionMap。这样做的问题是我希望它在应用程序的任何地方都能工作,所以我试图将它与顶级JFrame相关联。但是,JFrame没有getInputMap()方法。迷路了。[添加]ks=KeyStroke.getKeyStroke(KeyEvent.VK_F2,0);JMenuItemmi=newJMenuItem("Rename");mi.setAccel

java - 如何用swing绘制 'biohazard'

我正在为即将到来的测试练习我的挥杆能力,fried给了我画这样的生物危害标志的想法:alttexthttp://img62.imageshack.us/img62/8372/lab6b.gif我可以使用Elipse2D绘制圆圈,但我需要以某种方式切割这3个三角形。我有什么想法可以做到这一点吗? 最佳答案 您可以为此使用Java2D和Canvas。您可能正在使用的东西是Circle和Arc。你应该有三个30度的弧。我尝试在框架上使用简单的图形。尝试一下importjava.awt.Color;importjava.awt.Graphi

java - 如何在 swing 中使用 Smack API 停止打开重复窗口?

我有2个扩展JFrame的swing类。两者在构造函数中都有show()方法。从ClassOne我调用了ClassTwo就像newClassTwo()按钮点击事件。但是,如果我再次按下按钮,则会打开ClassTwo的新窗口。那么,如果打开了一个ClassTwo窗口,我该如何停止打开ClassTwo窗口呢?编辑现在这个问题已经解决了,但是现在当我第一次打开ClassTwo窗口时它只显示一个窗口。然后在我再次打开ClassTwo窗口时关闭它后,它会打开两个窗口并且这个计数继续增加。为什么会这样?编辑2我发现它不是Swing问题,而是来自SamckAPI的MultiUsreChat类的问题。